package gek.uni.aspirant.ocl.parser.mptree.tree;

import java.util.Collection;
import java.util.Map;
import java.util.Set;

public class MethodNode extends NodeWithType {

  /**
   * Имя переменной, в которой будет храниться результат работы метода
   */
  private String returnVariableName;

  /**
   * Мапа пар <имя -> тип>, в которой описываются параметры метода
   */
  private Map<String, String> parametersMap;

  public MethodNode(String name, String valueClassName,
      String returnVariableName, Map<String, String> paramMap) {
    super(name, valueClassName);
    this.setReturnVariableName(returnVariableName);
    this.setParametersMap(paramMap);
  }

  public MethodNode(String name, Set<INode> children,
      String valueClassName, String returnVariableName,
      Map<String, String> paramMap) {
    super(name, children, valueClassName);
    this.setReturnVariableName(returnVariableName);
    this.setParametersMap(paramMap);
  }

  public void setReturnVariableName(String returnVariableName) {
    this.returnVariableName = returnVariableName;
  }

  public String getReturnVariableName() {
    return returnVariableName;
  }

  public void setParametersMap(Map<String, String> parametersMap) {
    this.parametersMap = parametersMap;
  }

  public Map<String, String> getParametersMap() {
    return parametersMap;
  }

}
